#region Using

using System.Collections.ObjectModel;
using Microsoft.Xna.Framework.Input;

#endregion

namespace XNgine.Services
{
    public delegate void KeyPressedHandler(Collection<Keys> keys);

    public delegate void KeyHeldHandler(Collection<Keys> keys);

    public delegate void KeyReleasedHandler(Collection<Keys> keys);

    public interface IKeyboardDevice : IInputDevice<KeyboardState>
    {
        Collection<Keys> PressedKeys { get; }
        Collection<Keys> HeldKeys { get; }
        Collection<Keys> ReleasedKeys { get; }

        event KeyPressedHandler KeyPressed;
        event KeyHeldHandler KeyHeld;
        event KeyReleasedHandler KeyReleased;
    }
}